<!DOCTYPE HTML>

<html lang="en">
<head>

<title>RunAsManagerImpl (spring-security-docs 5.6.3 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="RunAsManagerImpl (spring-security-docs 5.6.3 API)";
        }
    }
    catch(err) {
    }
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">

<div class="topNav"><a id="navbar.top">

</a>
<div class="skipNav"><a href="RunAsManagerImpl.html#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">

</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="RunAsManagerImpl.html#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="RunAsManagerImpl.html#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="RunAsManagerImpl.html#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="RunAsManagerImpl.html#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">

</a></div>

</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>

<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.springframework.security.access.intercept</a></div>
<h2 title="Class RunAsManagerImpl" class="title">Class RunAsManagerImpl</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.springframework.security.access.intercept.RunAsManagerImpl</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code>org.springframework.beans.factory.InitializingBean</code>, <code><a href="RunAsManager.html" title="interface in org.springframework.security.access.intercept">RunAsManager</a></code></dd>
</dl>
<hr>
<pre>public class <span class="typeNameLabel">RunAsManagerImpl</span>
extends java.lang.Object
implements <a href="RunAsManager.html" title="interface in org.springframework.security.access.intercept">RunAsManager</a>, org.springframework.beans.factory.InitializingBean</pre>
<div class="block">Basic concrete implementation of a <a href="RunAsManager.html" title="interface in org.springframework.security.access.intercept"><code>RunAsManager</code></a>.
<p>
Is activated if any <a href="../ConfigAttribute.html#getAttribute()"><code>ConfigAttribute.getAttribute()</code></a> is prefixed with
<Code>RUN_AS_</Code>. If found, it generates a new <a href="RunAsUserToken.html" title="class in org.springframework.security.access.intercept"><code>RunAsUserToken</code></a> containing
the same principal, credentials and granted authorities as the original
<a href="../../core/Authentication.html" title="interface in org.springframework.security.core"><code>Authentication</code></a> object, along with <a href="../../core/authority/SimpleGrantedAuthority.html" title="class in org.springframework.security.core.authority"><code>SimpleGrantedAuthority</code></a>s for each
<code>RUN_AS_</code> indicated. The created <code>SimpleGrantedAuthority</code>s will
be prefixed with a special prefix indicating that it is a role (default prefix value is
<code>ROLE_</code>), and then the remainder of the <code>RUN_AS_</code> keyword. For
example, <code>RUN_AS_FOO</code> will result in the creation of a granted authority of
<code>ROLE_RUN_AS_FOO</code>.
<p>
The role prefix may be overridden from the default, to match that used elsewhere, for
example when using an existing role database with another prefix. An empty role prefix
may also be specified. Note however that there are potential issues with using an empty
role prefix since different categories of <a href="../ConfigAttribute.html" title="interface in org.springframework.security.access"><code>ConfigAttribute</code></a> can not be properly
discerned based on the prefix, with possible consequences when performing voting and
other actions. However, this option may be of some use when using pre-existing role
names without a prefix, and no ability exists to prefix them with a role prefix on
reading them in, such as provided for example in
<a href="../../core/userdetails/jdbc/JdbcDaoImpl.html" title="class in org.springframework.security.core.userdetails.jdbc"><code>JdbcDaoImpl</code></a>.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">

<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">

</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="RunAsManagerImpl.html#%3Cinit%3E()">RunAsManagerImpl</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>

<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">

</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RunAsManagerImpl.html#afterPropertiesSet()">afterPropertiesSet</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="../../core/Authentication.html" title="interface in org.springframework.security.core">Authentication</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RunAsManagerImpl.html#buildRunAs(org.springframework.security.core.Authentication,java.lang.Object,java.util.Collection)">buildRunAs</a></span>&#8203;(<a href="../../core/Authentication.html" title="interface in org.springframework.security.core">Authentication</a>&nbsp;authentication,
java.lang.Object&nbsp;object,
java.util.Collection&lt;<a href="../ConfigAttribute.html" title="interface in org.springframework.security.access">ConfigAttribute</a>&gt;&nbsp;attributes)</code></th>
<td class="colLast">
<div class="block">Returns a replacement <code>Authentication</code> object for the current secure
object invocation, or <code>null</code> if replacement not required.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RunAsManagerImpl.html#getKey()">getKey</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RunAsManagerImpl.html#getRolePrefix()">getRolePrefix</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RunAsManagerImpl.html#setKey(java.lang.String)">setKey</a></span>&#8203;(java.lang.String&nbsp;key)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RunAsManagerImpl.html#setRolePrefix(java.lang.String)">setRolePrefix</a></span>&#8203;(java.lang.String&nbsp;rolePrefix)</code></th>
<td class="colLast">
<div class="block">Allows the default role prefix of <code>ROLE_</code> to be overridden.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RunAsManagerImpl.html#supports(java.lang.Class)">supports</a></span>&#8203;(java.lang.Class&lt;?&gt;&nbsp;clazz)</code></th>
<td class="colLast">
<div class="block">This implementation supports any type of class, because it does not query the
presented secure object.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RunAsManagerImpl.html#supports(org.springframework.security.access.ConfigAttribute)">supports</a></span>&#8203;(<a href="../ConfigAttribute.html" title="interface in org.springframework.security.access">ConfigAttribute</a>&nbsp;attribute)</code></th>
<td class="colLast">
<div class="block">Indicates whether this <code>RunAsManager</code> is able to process the passed
<code>ConfigAttribute</code>.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">

</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">

<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">

</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;()">

</a>
<ul class="blockListLast">
<li class="blockList">
<h4>RunAsManagerImpl</h4>
<pre>public&nbsp;RunAsManagerImpl()</pre>
</li>
</ul>
</li>
</ul>
</section>

<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">

</a>
<h3>Method Detail</h3>
<a id="afterPropertiesSet()">

</a>
<ul class="blockList">
<li class="blockList">
<h4>afterPropertiesSet</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;afterPropertiesSet()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>afterPropertiesSet</code>&nbsp;in interface&nbsp;<code>org.springframework.beans.factory.InitializingBean</code></dd>
</dl>
</li>
</ul>
<a id="buildRunAs(org.springframework.security.core.Authentication,java.lang.Object,java.util.Collection)">

</a>
<ul class="blockList">
<li class="blockList">
<h4>buildRunAs</h4>
<pre class="methodSignature">public&nbsp;<a href="../../core/Authentication.html" title="interface in org.springframework.security.core">Authentication</a>&nbsp;buildRunAs&#8203;(<a href="../../core/Authentication.html" title="interface in org.springframework.security.core">Authentication</a>&nbsp;authentication,
                                 java.lang.Object&nbsp;object,
                                 java.util.Collection&lt;<a href="../ConfigAttribute.html" title="interface in org.springframework.security.access">ConfigAttribute</a>&gt;&nbsp;attributes)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RunAsManager.html#buildRunAs(org.springframework.security.core.Authentication,java.lang.Object,java.util.Collection)">RunAsManager</a></code></span></div>
<div class="block">Returns a replacement <code>Authentication</code> object for the current secure
object invocation, or <code>null</code> if replacement not required.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="RunAsManager.html#buildRunAs(org.springframework.security.core.Authentication,java.lang.Object,java.util.Collection)">buildRunAs</a></code>&nbsp;in interface&nbsp;<code><a href="RunAsManager.html" title="interface in org.springframework.security.access.intercept">RunAsManager</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>authentication</code> - the caller invoking the secure object</dd>
<dd><code>object</code> - the secured object being called</dd>
<dd><code>attributes</code> - the configuration attributes associated with the secure object
being invoked</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a replacement object to be used for duration of the secure object
invocation, or <code>null</code> if the <code>Authentication</code> should be left
as is</dd>
</dl>
</li>
</ul>
<a id="getKey()">

</a>
<ul class="blockList">
<li class="blockList">
<h4>getKey</h4>
<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;getKey()</pre>
</li>
</ul>
<a id="getRolePrefix()">

</a>
<ul class="blockList">
<li class="blockList">
<h4>getRolePrefix</h4>
<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;getRolePrefix()</pre>
</li>
</ul>
<a id="setKey(java.lang.String)">

</a>
<ul class="blockList">
<li class="blockList">
<h4>setKey</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setKey&#8203;(java.lang.String&nbsp;key)</pre>
</li>
</ul>
<a id="setRolePrefix(java.lang.String)">

</a>
<ul class="blockList">
<li class="blockList">
<h4>setRolePrefix</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setRolePrefix&#8203;(java.lang.String&nbsp;rolePrefix)</pre>
<div class="block">Allows the default role prefix of <code>ROLE_</code> to be overridden. May be set
to an empty value, although this is usually not desirable.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>rolePrefix</code> - the new prefix</dd>
</dl>
</li>
</ul>
<a id="supports(org.springframework.security.access.ConfigAttribute)">

</a>
<ul class="blockList">
<li class="blockList">
<h4>supports</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;supports&#8203;(<a href="../ConfigAttribute.html" title="interface in org.springframework.security.access">ConfigAttribute</a>&nbsp;attribute)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RunAsManager.html#supports(org.springframework.security.access.ConfigAttribute)">RunAsManager</a></code></span></div>
<div class="block">Indicates whether this <code>RunAsManager</code> is able to process the passed
<code>ConfigAttribute</code>.
<p>
This allows the <code>AbstractSecurityInterceptor</code> to check every
configuration attribute can be consumed by the configured
<code>AccessDecisionManager</code> and/or <code>RunAsManager</code> and/or
<code>AfterInvocationManager</code>.
</p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="RunAsManager.html#supports(org.springframework.security.access.ConfigAttribute)">supports</a></code>&nbsp;in interface&nbsp;<code><a href="RunAsManager.html" title="interface in org.springframework.security.access.intercept">RunAsManager</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>attribute</code> - a configuration attribute that has been configured against the
<code>AbstractSecurityInterceptor</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if this <code>RunAsManager</code> can support the passed
configuration attribute</dd>
</dl>
</li>
</ul>
<a id="supports(java.lang.Class)">

</a>
<ul class="blockListLast">
<li class="blockList">
<h4>supports</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;supports&#8203;(java.lang.Class&lt;?&gt;&nbsp;clazz)</pre>
<div class="block">This implementation supports any type of class, because it does not query the
presented secure object.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="RunAsManager.html#supports(java.lang.Class)">supports</a></code>&nbsp;in interface&nbsp;<code><a href="RunAsManager.html" title="interface in org.springframework.security.access.intercept">RunAsManager</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>clazz</code> - the secure object</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>always <code>true</code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>

<footer role="contentinfo">
<nav role="navigation">

<div class="bottomNav"><a id="navbar.bottom">

</a>
<div class="skipNav"><a href="RunAsManagerImpl.html#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">

</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="RunAsManagerImpl.html#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="RunAsManagerImpl.html#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="RunAsManagerImpl.html#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="RunAsManagerImpl.html#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">

</a></div>

</nav>
</footer>
<script>if (window.parent == window) {(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','//www.google-analytics.com/analytics.js','ga');ga('create', 'UA-2728886-23', 'auto', {'siteSpeedSampleRate': 100});ga('send', 'pageview');}</script><script defer src="https://static.cloudflareinsights.com/beacon.min.js/v652eace1692a40cfa3763df669d7439c1639079717194" integrity="sha512-Gi7xpJR8tSkrpF7aordPZQlW2DLtzUlZcumS8dMQjwDHEnw9I7ZLyiOj/6tZStRBGtGgN6ceN6cMH8z7etPGlw==" data-cf-beacon='{"rayId":"7040eb3c8a2597cf","token":"bffcb8a918ae4755926f76178bfbd26b","version":"2021.12.0","si":100}' crossorigin="anonymous"></script>
</body>
</html>
